# 回测数据管理类
class BackTestingData:

    def __init__(self):
        self.data = {
            'selected_stocks': [],  # 每个调仓日持有的股票
            'start_date': "",
            'end_date': "",
            'trans_period': -1,  # 调仓期
            'back_day': -1,   # 计算过去几天的因子
            'stock_nums': 0,
            'money': 0.0,
            'portfolio_value': 0.0,
            'service_charge': 0.002,
            'factor': '',
            'long_ma': 0,
            'short_ma': 0,
            'window_size ': 0,
            'next_n_day': 0,
            'transPeriod': 0,
        }

    def update_data(self, key: str, val):
        self.data[key] = val

    def add_stock(self, aStock: str):
        self.data['selected_stocks'].append(aStock)

    def remove_stock(self, aStock: str):
        self.data['selected_stocks'].remove(aStock)
